<?php
require $_SERVER['DOCUMENT_ROOT'] . '/tabp/modules/DBObject.php';
/**
 * User
 *
 * @author tpr
 */
class User extends DBObject
{
    private $level;
    
    public function __construct($name, $level)
    {
        $this->setName($name);
        $this->setLevel($level);
    }
    
    public function setLevel($level)
    {
        if (is_integer($level))
        {
            $this->level = $level;
        }
    }
    
    public function getLevel()
    {
        return $this->level;
    }
    
    /*
     * Überprüft, ob der Benutzer einen bestimmten Bereich 
     * betreten / sehen darf.
     */
    public function hasAccess($level)
    {
        $result = false;
        if (is_integer($level))
        {
            if ($this->level >= $level)
            {
                $result = true;
            }
        }
        return $result;
    }
    
    // Hinzufügen des Benutzers zur DB.
    // TODO: Passwort und regDate müssen extra gesetzt werden.
    public function createObject()
    {
        require_once '../MessageManager/MessageManager.php';
        if (!$this->existsInDatabase('tabp_users'))
        {
            // Speichern
            $statement = 'INSERT INTO tabp_users (Name, AccessLevel) VALUES(' . 
                    $this->getName() . ', ' . $this->getLevel() . ')';
           
            require_once '../DatabaseManager/DatabaseManager.php';   
            $dbMan = new DatabaseManager();
            $dbMan->connect();
            $dbMan->execSQL($statement);
            $dbMan->disconnect();
            MessageManager::writeMessage('Benutzer erstellt.', 0);
        }
        else
        {
            MessageManager::writeMessage('Benutzer existiert bereits.', 2);
        }
    }

    // Speichern der Benutzerinformationen in der DB.
    public function saveObject()
    {
        require_once '../MessageManager/MessageManager.php';
        if ($this->existsInDatabase('tabp_users'))
        {
           $statement = 'UPDATE tabp_users SET Name = \'' . 
                   $this->getName() . '\' WHERE ID_User = \'' . 
                   $this->getID() . '\'';
            
           require_once '../DatabaseManager/DatabaseManager.php';   
           $dbMan = new DatabaseManager();
           $dbMan->connect();
           $dbMan->execSQL($statement);
           $dbMan->disconnect();
           MessageManager::writeMessage('Benutzer aktualisiert.', 0); 
        }
        else
        {   
            MessageManager::writeMessage('Benutzer existiert nicht.', 2);
        }
    }

    // Laden der Benutzerinformationen aus der DB.
    public function loadObjectByID($id) 
    {
        $statement = 'SELECT * FROM tabp_users WHERE ID_User = ' . 
                mysql_real_escape_string($id);
        
        require_once '../DatabaseManager/DatabaseManager.php';   
        $dbMan = new DatabaseManager();
        $dbMan->connect();
        $dbMan->execSQL($statement);
        $dbMan->disconnect();
    }
}
?>